Grounded SEA Actuator

ABSTRACT

A device is provided. The device includes a worm drive comprising a worm and a worm gear. The device also includes an actuator comprising a motor, a shaft, and the worm, wherein the shaft is configured to rotate about a shaft axis, and the actuator is configured to (i) drive the worm drive, and (ii) move linearly along the shaft axis. The device also includes a first spring and a second spring, wherein the second ends are fixed, and wherein the first and second springs are configured to resist movement of the actuator along the shaft axis in opposite directions as a result of forces transmitted through the worm drive. The device further includes a linear position encoder configured to determine a position of the actuator along the shaft axis.

CROSS REFERENCE TO RELATED DISCLOSURE

This application is continuation of U.S. application Ser. No. 16/553,480filed on Aug. 28, 2019, which is a divisional of U.S. patent applicationSer. No. 15/334,231 filed on Oct. 25, 2016. U.S. application Ser. Nos.16/553,480 and 15/334,231 are incorporated herein by reference in theirentirety.

BACKGROUND

As technology advances, various types of robotic devices are beingcreated for performing a variety of functions that may assist users.Robotic devices may be used for applications involving materialhandling, transportation, welding, assembly, and dispensing, amongothers. Over time, the manner in which these robotic systems operate isbecoming more intelligent, efficient, and intuitive. As robotic systemsbecome increasingly prevalent in numerous aspects of modern life, it isdesirable for robotic systems to be both efficient and safe. Therefore,demand for efficient and safe robotic systems has helped spur innovationin actuation, movement, sensing techniques, and component design andassembly.

Robotic devices, such as robotic legs and arms, may include jointsbetween various members, as well as various components that are designedto interact with the environment. Such components may include roboticfeet and hands, which may include additional components that can be usedto support, stabilize, grip, and otherwise allow a robotic device toeffectively carry out one or more actions.

SUMMARY

The present application discloses implementations that relate tomeasuring forces acting on bidirectional force systems. A roboticappendage may include two members connected at a joint, such that thejoint has a single degree of freedom. It may be beneficial to measureforces acting on the members and/or joint to ensure compliance, as wellas ensure the robotic appendage is safe in its interaction with theenvironment while minimizing the risk of damage to both the environmentand the robotic appendage itself.

During use of a robotic appendage, an actuator may activate and attemptto cause the members of the appendage to rotate with respect to eachother. Various forces may act on the members, and may either prevent therotation of the members or cause the members to rotate further thanexpected. The magnitude and direction of these forces may be useful indetermining compliance and safety metrics related to the roboticappendage.

In one example, the present application describes a device. The deviceincludes a worm drive comprising a worm and a worm gear. The device alsoincludes an actuator comprising a motor, a shaft, and the worm, whereinthe shaft is configured to rotate about a shaft axis, and wherein theactuator is configured to (i) drive the worm drive, and (ii) movelinearly along the shaft axis. The device further includes a firstspring having a first end and a second end, wherein the second end isfixed, and wherein the first spring is configured to resist movement ofthe actuator along the shaft axis in a first direction as a result of afirst force transmitted through the worm drive. The device yet furtherincludes a second spring having a first end and a second end, whereinthe second end is fixed, and wherein the second spring is configured toresist movement of the actuator along the shaft axis in a seconddirection as a result of a second force transmitted through the wormdrive, wherein the second direction is opposite the first direction. Andthe device still further includes a linear position encoder configuredto determine a position of the actuator along the shaft axis.

In a second example, a method is described. The method involvesdetermining, by a linear position encoder, a first linear position of anactuator that drives a worm drive, wherein (i) the worm drive comprisesa worm and a worm gear, (ii) the actuator comprises a motor, shaft, andthe worm, wherein the shaft is configured to rotate about a shaft axisand the actuator is configured to move linearly along a shaft axis,(iii) a first spring has a first end and a second end, wherein thesecond end is fixed, and wherein the first spring is configured toresist movement of the actuator along the shaft axis in a firstdirection as a result of a first force transmitted through the wormdrive, and (iv) a second spring has a first end and a second end,wherein the second end is fixed, and wherein the second spring isconfigured to resist movement of the actuator along the shaft axis in asecond direction as a result of a second force transmitted through theworm drive, wherein the second direction is opposite the firstdirection. The method also involves determining, by the linear positionencoder, a second linear position of the actuator, wherein the secondlinear position is different than the first linear position. The methodyet further involves determining a force acting on the actuator alongthe shaft axis based on a difference between the first linear positionand the second linear position. The method still further involvescontrolling the actuator based on the determined force.

In a third example, a robotic device is described. The robotic deviceincludes a worm drive comprising a worm and a worm gear. The roboticdevice also includes an actuator comprising a motor, a shaft, and theworm, wherein the shaft is configured to rotate about a shaft axis, andwherein the actuator is configured to (i) drive the worm drive, and (ii)move linearly along the shaft axis. The robotic device further includesa first spring having a first end and a second end, wherein the secondend is fixed, and wherein the first spring is configured to resistmovement of the actuator along the shaft axis in a first direction as aresult of a first force transmitted through the worm drive. The roboticdevice still further includes a second spring having a first end and asecond end, wherein the second end is fixed, and wherein the secondspring is configured to resist movement of the actuator along the shaftaxis in a second direction as a result of a second force transmittedthrough the worm drive, wherein the second direction is opposite thefirst direction. The robotic device yet further includes a linearposition encoder configured to determine a position of the actuatoralong the shaft axis. The robotic device still further includes acontrol system, wherein the control system comprises a processor, anon-transitory computer-readable memory, program instructions stored onthe non-transitory computer-readable memory and executable by theprocessor. The program instructions are executable to (i) receive, fromthe linear position encoder, the position of the actuator along theshaft axis, (ii) determine, based on the position of the actuator, aforce acting on the actuator along the shaft axis, and (iii) control theactuator based on the determined force.

In another example, a control system is described. The control systemincludes means for determining a first linear position of an actuatorthat drives a worm drive, wherein (i) the worm drive comprises a wormand a worm gear, (ii) the actuator comprises a motor, shaft, and theworm, wherein the shaft is configured to rotate about a shaft axis andthe actuator is configured to move linearly along a shaft axis, (iii) afirst spring has a first end and a second end, wherein the second end isfixed, and wherein the first spring is configured to resist movement ofthe actuator along the shaft axis in a first direction as a result of afirst force transmitted through the worm drive, and (iv) a second springhas a first end and a second end, wherein the second end is fixed, andwherein the second spring is configured to resist movement of theactuator along the shaft axis in a second direction as a result of asecond force transmitted through the worm drive, wherein the seconddirection is opposite the first direction. The control system alsoincludes means for determining a second linear position of the actuator,wherein the second linear position is different than the first linearposition. The control system further includes means for determining aforce acting on the actuator along the shaft axis based on a differencebetween the first linear position and the second linear position. Thecontrol system still further includes means for controlling the actuatorbased on the determined force.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates a configuration of a robotic system, according to anexample implementation.

FIG. 2 illustrates an example robotic arm, according to an exampleimplementation.

FIG. 3A illustrates a first configuration of a device in an initialstate, according to an example implementation.

FIG. 3B illustrates the first configuration of the device of FIG. 3A ina second state, according to an example implementation.

FIG. 4A illustrates a second configuration of a device in an initialstate, according to an example implementation.

FIG. 4B illustrates the second configuration of the device of FIG. 4A ina second state, according to an example implementation.

FIG. 5A illustrates a third configuration of a device in an initialstate, according to an example implementation.

FIG. 5B illustrates the third configuration of the device of FIG. 5A ina second state, according to an example implementation.

FIG. 6 illustrates a flowchart of an example method according to anexample implementation.

DETAILED DESCRIPTION

The following detailed description describes various features andfunctions of the disclosed devices, systems, and methods with referenceto the accompanying figures. The illustrative device, system, and methodembodiments described herein are not meant to be limiting. It should beunderstood that the words “exemplary,” “example,” and “illustrative,”are used herein to mean “serving as an example, instance, orillustration.” Any implementation, embodiment, or feature describedherein as “exemplary,” “example,” or “illustrative,” is not necessarilyto be construed as preferred or advantageous over other implementations,embodiments, or features. Further, the implementations and embodimentsdescribed herein are not meant to be limiting. It will be readilyunderstood that certain aspects of the disclosed devices, systems, andmethods can be arranged and combined in a wide variety of differentconfigurations, all of which are contemplated herein. Additionally, thefollowing detailed description describes various features and functionsof the disclosure with reference to the accompanying Figures. In theFigures, similar symbols typically identify similar components, unlesscontext dictates otherwise.

I. OVERVIEW

Robotic joints may be used in many situations to allow a robotic deviceto interact with an environment, through movement of the robotic deviceand positioning of various components of the robotic device such asarms, legs, and end effectors. During use of the robotic device, one ormore components may impact the environment, causing unexpected forces toact on the components. For instance, a robotic device may include an armwith a joint, having a gripper attached to the end of the arm. Therobotic device may control the arm, intending to position the gripperover and object to pick it up. However, the arm may unintentionallyimpact an object in the environment, such as a wall, which may impart aforce on the arm that was not expected. It may be beneficial to have amechanism for determining this force, so that proper action can be takento avoid damage to the environment and/or the robotic device.

In the field of robotics, the control system of a robotic device mayoperate more effectively when provided with information regarding theposition, orientation, and forces acting on each component of therobotic device. To provide this information, different types of sensorsmay be placed on or included in one or more components. However,increasing the number of sensors also means increasing the complexity ofthe system, as well as increasing the number of possible points offailure.

With these concepts in mind, an example device disclosed herein mayinclude a worm drive, and actuator, a first spring and a second spring,and a linear position encoder. The worm drive may comprise a worm and aworm gear. The actuator may comprise a motor, a shaft, and the worm ofthe worm drive, such that the motor turns the shaft, which turns theworm, which then turns the worm gear. Alternatively, the worm gear maybe turned, thereby imparting a force on the worm, which may cause theworm, shaft, and actuator to slide along an axis. The first spring maybe coupled to the actuator on one end, and fixed on the other end, suchthat the first spring resists movement of the actuator in a firstdirection. The second spring may similarly be coupled to the actuator onone end, and fixed on the other end. The second spring may be configuredsuch that is resists movement of the actuator in a second directionopposite the first direction. The linear position encoder may beconfigured to determine the position of the actuator along an axis aboutwhich the shaft of the actuator rotates (i.e., the shaft axis).

Example embodiments of a device disclosed herein may include a firstspring and second spring that are compression springs, extensionsprings, or other types of springs. Further, characteristics of thefirst spring and second spring may be the same or different from eachother, such as different types, sizes, shapes, and spring constants. Insome examples, each of the first spring and/or second spring may be madeup of two or more springs. Also, one or more springs may partiallysurround the actuator, and/or may be in various positions around theactuator. In some examples, the first and second spring may be a singlespring configured to resist movement in two directions, such that thesingle spring compresses, thereby resisting movement in a firstdirection, and extends, thereby resisting movement in the oppositedirection.

The following two examples help illustrate some concepts related todetermining a difference in position of the actuator due to a forcetransmitted through the worm drive. Both examples are described withreference to an elbow joint of a robotic arm, however the sameprinciples can be applied in other contexts. In a first example, theactuator may actuate, causing the shaft (and worm) to rotate. The wormgear, however, may be held stationary due to an object in theenvironment preventing the elbow joint from opening or closing. When theactuator actuates, the worm may attempt to rotate the worm gear, howeverthe worm may instead rotate against the worm gear and move itselfbackwards, causing the actuator to slide along the shaft axis. Thedifference in position of the actuator may be correlated to the forceholding the worm gear stationary via the known parameters of themechanism components.

In another example, the actuator may not actuate. Instead, a force mayact on the elbow joint attempting to open or close the joint. The forcemay be transmitted through the joint, causing the worm gear to rotate.The worm, however, may not rotate, but may instead slideperpendicularly, along the actuator shaft axis. This may slide theactuator to a new position. The difference in position may be correlatedto the force imparted on the worm gear, or a torque acting on the elbowjoint.

The first and second springs may hold the actuator in an equilibriumposition. When a force acts on the elbow joint from an object in theenvironment, or the actuator rotates the worm against the worm gear, theactuator may move. This may cause the springs to compress and/or extend.

II. EXAMPLE ROBOTIC SYSTEMS

FIG. 1 illustrates an example configuration of a robotic system that maybe used in connection with the implementations described herein. Therobotic system 100 may be configured to operate autonomously,semi-autonomously, and/or using directions provided by user(s). Therobotic system 100 may be implemented in various forms, such as arobotic arm, industrial robot, or some other arrangement. Furthermore,the robotic system 100 may also be referred to as a robot, roboticdevice, or mobile robot, among other designations.

As shown in FIG. 1, the robotic system 100 may include processor(s) 102,data storage 104, and controller(s) 108, which together may be part of acontrol system 118. The robotic system 100 may also include sensor(s)112, power source(s) 114, mechanical components 110, and electricalcomponents 116. Nonetheless, the robotic system 100 is shown forillustrative purposes, and may include more or fewer components. Thevarious components of robotic system 100 may be connected in any manner,including wired or wireless connections. Further, in some examples,components of the robotic system 100 may be distributed among multiplephysical entities rather than a single physical entity. Other exampleillustrations of robotic system 100 may exist as well.

Processor(s) 102 may operate as one or more general-purpose hardwareprocessors or special purpose hardware processors (e.g., digital signalprocessors, application specific integrated circuits, etc.). Theprocessor(s) 102 may be configured to execute computer-readable programinstructions 106, and manipulate data 107, both of which are stored inthe data storage 104. The processor(s) 102 may also directly orindirectly interact with other components of the robotic system 100,such as sensor(s) 112, power source(s) 114, mechanical components 110,and/or electrical components 116.

The data storage 104 may be one or more types of hardware memory. Forexample, the data storage 104 may include or take the form of one ormore computer-readable storage media that can be read or accessed byprocessor(s) 102. The one or more computer-readable storage media caninclude volatile and/or non-volatile storage components, such asoptical, magnetic, organic, or another type of memory or storage, whichcan be integrated in whole or in part with processor(s) 102. In someimplementations, the data storage 104 can be a single physical device.In other implementations, the data storage 104 can be implemented usingtwo or more physical devices, which may communicate with one another viawired or wireless communication. As noted previously, the data storage104 may include the computer-readable program instructions 106 and thedata 107. The data 107 may be any type of data, such as configurationdata, sensor data, and/or diagnostic data, among other possibilities.

The controller 108 may include one or more electrical circuits, units ofdigital logic, computer chips, and/or microprocessors that areconfigured to (perhaps among other tasks), interface between anycombination of the mechanical components 110, the sensor(s) 112, thepower source(s) 114, the electrical components 116, the control system118, and/or a user of the robotic system 100. In some implementations,the controller 108 may be a purpose-built embedded device for performingspecific operations with one or more subsystems of the robotic device100.

The control system 118 may monitor and physically change the operatingconditions of the robotic system 100. In doing so, the control system118 may serve as a link between portions of the robotic system 100, suchas between mechanical components 110 and/or electrical components 116.In some instances, the control system 118 may serve as an interfacebetween the robotic system 100 and another computing device. Further,the control system 118 may serve as an interface between the roboticsystem 100 and a user. In some instances, the control system 118 mayinclude various components for communicating with the robotic system100, including a joystick, buttons, and/or ports, etc. The exampleinterfaces and communications noted above may be implemented via a wiredor wireless connection, or both. The control system 118 may performother operations for the robotic system 100 as well.

During operation, the control system 118 may communicate with othersystems of the robotic system 100 via wired or wireless connections, andmay further be configured to communicate with one or more users of therobot. As one possible illustration, the control system 118 may receivean input (e.g., from a user or from another robot) indicating aninstruction to perform a particular gait in a particular direction, andat a particular speed. A gait is a pattern of movement of the limbs ofan animal, robot, or other mechanical structure.

Based on this input, the control system 118 may perform operations tocause the robotic device 100 to move according to the requested gait. Asanother illustration, a control system may receive an input indicatingan instruction to move to a particular geographical location. Inresponse, the control system 118 (perhaps with the assistance of othercomponents or systems) may determine a direction, speed, and/or gaitbased on the environment through which the robotic system 100 is movingen route to the geographical location.

Operations of the control system 118 may be carried out by theprocessor(s) 102. Alternatively, these operations may be carried out bythe controller 108, or a combination of the processor(s) 102 and thecontroller 108. In some implementations, the control system 118 maypartially or wholly reside on a device other than the robotic system100, and therefore may at least in part control the robotic system 100remotely.

Mechanical components 110 represent hardware of the robotic system 100that may enable the robotic system 100 to perform physical operations.As a few examples, the robotic system 100 may include physical memberssuch as leg(s), arm(s), wheel(s), hand(s), finger(s), feet, and/or endeffectors. The physical members or other parts of robotic system 100 mayfurther include actuators arranged to move the physical members inrelation to one another. The robotic system 100 may also include one ormore structured bodies for housing the control system 118 and/or othercomponents, and may further include other types of mechanicalcomponents. The particular mechanical components 110 used in a givenrobot may vary based on the design of the robot, and may also be basedon the operations and/or tasks the robot may be configured to perform.

In some examples, the mechanical components 110 may include one or moreremovable components. The robotic system 100 may be configured to addand/or remove such removable components, which may involve assistancefrom a user and/or another robot. For example, the robotic system 100may be configured with removable arms, hands, feet, and/or legs, so thatthese appendages can be replaced or changed as needed or desired. Insome implementations, the robotic system 100 may include one or moreremovable and/or replaceable battery units or sensors. Other types ofremovable components may be included within some implementations.

The robotic system 100 may include sensor(s) 112 arranged to senseaspects of the robotic system 100. The sensor(s) 112 may include one ormore force sensors, torque sensors, velocity sensors, accelerationsensors, position sensors, proximity sensors, motion sensors, locationsensors, load sensors, temperature sensors, touch sensors, depthsensors, ultrasonic range sensors, infrared sensors, object sensors,and/or cameras, among other possibilities. Within some examples, therobotic system 100 may be configured to receive sensor data from sensorsthat are physically separated from the robot (e.g., sensors that arepositioned on other robots or located within the environment in whichthe robot is operating).

The sensor(s) 112 may provide sensor data to the processor(s) 102(perhaps by way of data 107) to allow for interaction of the roboticsystem 100 with its environment, as well as monitoring of the operationof the robotic system 100. The sensor data may be used in evaluation ofvarious factors for activation, movement, and deactivation of mechanicalcomponents 110 and electrical components 116 by control system 118. Forexample, the sensor(s) 112 may capture data corresponding to the terrainof the environment or location of nearby objects, which may assist withenvironment recognition and navigation. In an example configuration,sensor(s) 112 may include RADAR (e.g., for long-range object detection,distance determination, and/or speed determination), LIDAR (e.g., forshort-range object detection, distance determination, and/or speeddetermination), SONAR (e.g., for underwater object detection, distancedetermination, and/or speed determination), VICON® (e.g., for motioncapture), one or more cameras (e.g., stereoscopic cameras for 3Dvision), a global positioning system (GPS) transceiver, and/or othersensors for capturing information of the environment in which therobotic system 100 is operating. The sensor(s) 112 may monitor theenvironment in real time, and detect obstacles, elements of the terrain,weather conditions, temperature, and/or other aspects of theenvironment. In another example, sensor(s) 112 may capture datacorresponding to one or more characteristics of a target or identifiedobject, such as a size, shape, profile, structure, or orientation of theobject.

Further, the robotic system 100 may include sensor(s) 112 configured toreceive information indicative of the state of the robotic system 100,including sensor(s) 112 that may monitor the state of the variouscomponents of the robotic system 100. The sensor(s) 112 may measureactivity of systems of the robotic system 100 and receive informationbased on the operation of the various features of the robotic system100, such as the operation of extendable legs, arms, or other mechanicaland/or electrical features of the robotic system 100. The data providedby the sensor(s) 112 may enable the control system 118 to determineerrors in operation as well as monitor overall operation of componentsof the robotic system 100.

As an example, the robotic system 100 may use force sensors to measureload on various components of the robotic system 100. In someimplementations, the robotic system 100 may include one or more forcesensors on an arm, leg, hand, foot, or finger to measure the load on theactuators that move one or more members of the arm, leg, hand, foot, orfinger. As another example, the robotic system 100 may use one or moreposition sensors to sense the position of the actuators of the roboticsystem. For instance, such position sensors may sense states ofextension, retraction, positioning, or rotation of the actuators onarms, legs, hands, feet, fingers, or end effectors.

As another example, the sensor(s) 112 may include one or more velocityand/or acceleration sensors. For instance, the sensor(s) 112 may includean inertial measurement unit (IMU). The IMU may sense velocity andacceleration in the world frame, with respect to the gravity vector. Thevelocity and acceleration sensed by the IMU may then be translated tothat of the robotic system 100 based on the location of the IMU in therobotic system 100 and the kinematics of the robotic system 100.

The robotic system 100 may include other types of sensors not explicitlydiscussed herein. Additionally or alternatively, the robotic system mayuse particular sensors for purposes not enumerated herein.

The robotic system 100 may also include one or more power source(s) 114configured to supply power to various components of the robotic system100. Among other possible power systems, the robotic system 100 mayinclude a hydraulic system, electrical system, batteries, and/or othertypes of power systems. As an example illustration, the robotic system100 may include one or more batteries configured to provide charge tocomponents of the robotic system 100. Some of the mechanical components110 and/or electrical components 116 may each connect to a differentpower source, may be powered by the same power source, or be powered bymultiple power sources.

Any type of power source may be used to power the robotic system 100,such as electrical power or a gasoline engine. Additionally oralternatively, the robotic system 100 may include a hydraulic systemconfigured to provide power to the mechanical components 110 using fluidpower. Components of the robotic system 100 may operate based onhydraulic fluid being transmitted throughout the hydraulic system tovarious hydraulic motors and hydraulic cylinders, for example. Thehydraulic system may transfer hydraulic power by way of pressurizedhydraulic fluid through tubes, flexible hoses, or other links betweencomponents of the robotic system 100. The power source(s) 114 may chargeusing various types of charging, such as wired connections to an outsidepower source, wireless charging, combustion, or other examples.

The electrical components 116 may include various mechanisms capable ofprocessing, transferring, and/or providing electrical charge or electricsignals. Among possible examples, the electrical components 116 mayinclude electrical wires, circuitry, and/or wireless communicationtransmitters and receivers to enable operations of the robotic system100. The electrical components 116 may interwork with the mechanicalcomponents 110 to enable the robotic system 100 to perform variousoperations. The electrical components 116 may be configured to providepower from the power source(s) 114 to the various mechanical components110, for example. Further, the robotic system 100 may include electricmotors. Other examples of electrical components 116 may exist as well.

Although not shown in FIG. 1, the robotic system 100 may include a body,which may connect to or house appendages and components of the roboticsystem. As such, the structure of the body may vary within examples andmay further depend on particular operations that a given robot may havebeen designed to perform. For example, a robot developed to carry heavyloads may have a wide body that enables placement of the load.Similarly, a robot designed to reach high speeds may have a narrow,small body that does not have substantial weight. Further, the bodyand/or the other components may be developed using various types ofmaterials, such as metals or plastics. Within other examples, a robotmay have a body with a different structure or made of various types ofmaterials.

The body and/or the other components may include or carry the sensor(s)112. These sensors may be positioned in various locations on the roboticdevice 100, such as on the body and/or on one or more of the appendages,among other examples.

On its body, the robotic device 100 may carry a load, such as a type ofcargo that is to be transported. The load may also represent externalbatteries or other types of power sources (e.g., solar panels) that therobotic device 100 may utilize. Carrying the load represents one exampleuse for which the robotic device 100 may be configured, but the roboticdevice 100 may be configured to perform other operations as well.

As noted above, the robotic system 100 may include various types oflegs, arms, wheels, end effectors, gripping devices and so on. Ingeneral, the robotic system 100 may be configured with zero or morelegs. An implementation of the robotic system with zero legs may includewheels, treads, or some other form of locomotion. An implementation ofthe robotic system with two legs may be referred to as a biped, and animplementation with four legs may be referred as a quadruped.Implementations with six or eight legs are also possible. For purposesof illustration, robotic arm implementations of the robotic system 100are described below.

FIG. 2 shows an example robotic arm 200. As shown, the robotic arm 200includes a base 202, which may be a stationary base or may be a movablebase. In the case of a movable base, the base 202 may be considered asone of the mechanical components 110 and may include wheels (not shown),powered by one or more of actuators, which allow for mobility of theentire robotic arm 200.

Additionally, the robotic arm 200 includes joints 204A-204F each coupledto one or more actuators. Each joint may be coupled to a worm driveand/or actuator, described in more detail below. The actuators in joints204A-204F may operate to cause movement of various mechanical components110 such as appendages 206A-206F and/or end effector 208. For example,the actuator in joint 204F may cause movement of appendage 206F and endeffector 208 (i.e., since end effector 208 is coupled to appendage206F). Further, end effector 208 may take on various forms and mayinclude various parts. In one example, end effector 208 may take theform of a gripper such as a finger gripper as shown here or a differenttype of gripper such as a suction gripper. In another example, endeffector 208 may take the form of a tool such as a drill or a brush. Inyet another example, the end effector may include sensors such as forcesensors, location sensors, and/or proximity sensors. Other examples mayalso be possible.

In an example implementation, a robotic system 100, such as robotic arm200, may be capable of operating in a teach mode. In particular, teachmode may be an operating mode of the robotic arm 200 that allows a userto physically interact with and guide the robotic arm 200 towardscarrying out and recording various movements. In a teaching mode, anexternal force is applied (e.g., by the user) to the robotic system 100based on a teaching input that is intended to teach the robotic systemregarding how to carry out a specific task. The robotic arm 200 may thusobtain data regarding how to carry out the specific task based oninstructions and guidance from the user. Such data may relate to aplurality of configurations of the mechanical components 110, jointposition data, velocity data, acceleration data, torque data, forcedata, and power data, among other possibilities.

For example, during teach mode the user may grasp onto any part of therobotic arm 200 and provide an external force by physically moving therobotic arm 200. In particular, the user may guide the robotic arm 200towards grasping onto an object and then moving the object from a firstlocation to a second location. As the user guides the robotic arm 200during teach mode, the system may obtain and record data related to themovement such that the robotic arm 200 may be configured toindependently carry out the task at a future time during independentoperation (e.g., when the robotic arm 200 operates independently outsideof teach mode). Note, however, that external forces may also be appliedby other entities in the physical workspace such as by other objects,machines, and/or robotic systems, among other possibilities.

III. EXAMPLE DEVICE

As noted above, the present disclosure includes implementations thatrelate to measuring forces and/or torques acting on bidirectionalactuation mechanisms. In one example, the present disclosure may relateto measuring forces/torques acting on a joint of a robotic device. Theseforces/torques may be reflected in and correspond to movement of anactuator along an axis. FIG. 3A illustrates a simplified example of afirst embodiment of the present disclosure in an initial state. In FIG.3A, device 300 may include a worm drive 310 comprising a worm 312 and aworm gear 314. Device 300 may also include an actuator 320 comprising amotor 322, a shaft 324, and the worm 312. Shaft 324 may be coupled toworm 312 such that rotation of one causes rotation of the other.

Device 300 may also include a first spring 330 and a second spring 340,which may be in contact with actuator 320 such that actuator 320 canslide along axis 326 and can compress and/or extend springs 330 and 340.Device 300 may further include linear position encoder 350, androtational position encoder 354.

Device 300 may be implemented as a mechanical component of system 100and/or a robotic device, such as robotic arm 200. In some examples,multiple devices similar or identical to device 300 may be included in arobotic arm, with one device for each joint. Although the componentsillustrated in FIG. 3A are shown with a certain orientation and/ordesign, it should be understood that one or more components of device300 may be removed, added, and/or modified while remaining within thescope of this disclosure. Also, the orientation and combination ofcomponents may be changed based on the desired implementation.

Device 300 may include one or more physical components, such as thoseshown in FIG. 3A, including a worm drive 310, actuator 320, and springs330 and 340. In some examples, device 300 may include more or fewerphysical components than those shown, such as additional gearing stagesand intermediate components that may connect one or more of those shownin FIG. 3A. In particular, various arrangements of the first spring 330and second spring 340 may be used, and are described in further detailwith respect to FIGS. 4A-B and 5A-B. Further, for purposes ofexplanation and simplicity, examples disclosed herein may be describedwith reference to device 300 being connected to an elbow joint of arobotic arm. However it should be understood that other joints androbotic components may be used within the scope of this disclosure. Forinstance, in some examples, worm gear 314 may be connected to an arm,leg, wheel, end effector, or other component of a robotic device thatmay be configured to move. A robotic arm connected to worm gear 314 maybe configured to contact, grasp, hold, grip, or otherwise interact withan object in the environment. In this disclosure, movement of the arm orother component may refer to rotation about one or more axes (i.e.,opening or closing at the elbow). However, the principles describedherein should be understood to apply to any suitable robotic joint orcomponent having a degree of freedom. For instance, worm gear 314 mayalso be connected to a component that moves translationally along anaxis, such as movement in a clamping or sliding manner.

In FIG. 3A, worm drive 310 may include worm 312 and worm gear 314. Insome examples, worm gear 314 may be connected directly to a joint of arobotic device (such as an elbow). In other examples, worm gear 314 maybe coupled to a joint of a robotic device through one or more othergears, gear stages, belts, and/or other components. As used herein, afirst component “coupled” or “connected” to a second component meansthat the two components may be directly connected to each other, or mayhave one or more components, gears, shafts, or connecting elementsplaced between them.

Worm gear 314 may be a circular worm gear or worm wheel, having teethfacing outward surrounding an inner wheel. In some examples, the shapeof worm gear 314 may be a partial circle, ellipse, or other shape.Further, the shape of worm gear 314 may either be symmetric orasymmetric, full or partial, and/or may be shape other than a circle.Worm gear 314 may be coupled to a robotic joint (not shown) such thatrotation of worm gear 314 causes the robotic joint to actuate. Andfurther, worm gear 314 may be coupled such that movement of the roboticjoint causes the worm gear to rotate (i.e., worm gear 314 and therobotic joint can drive each other). In some examples, the teeth of wormgear 314 may be curved and/or angled to provide a smoother coupling toworm 312. This may result in smoother operation of the robotic grippingdevice.

In some examples, worm gear 314 may be fixed with respect to a componentof the robotic device it is connected to. For instance, device 300 maybe located inside an arm of a robotic device. Worm gear 314 may beconfigured to rotate around a central point 316, and that central point316 may be fixed relative to the arm of the robotic device. In FIG. 3A,plate 360 may be a component of the robotic arm, and as such centralpoint 316 may be fixed relative to plate 360.

In some examples, worm 312 and worm gear 314 may have a high reductionratio. Where there is a high reduction ratio, one full rotation of worm312 may correspond to 1/32 of a full rotation (or some other smallamount) of worm gear 314. The reduction ratio may depend on the numberand spacing of the teeth of worm gear 314 and worm 312. A characteristicof the high reduction ratio is that the worm is not back-drivable. Assuch, a force rotating worm 312 may cause worm gear 314 to responsivelyrotate, but a force rotating the worm gear 314 may not cause the worm312 to responsively rotate.

Device 300 may also include an actuator 320. Actuator 320 may include amotor 322, a shaft 324, and the worm 312. When the actuator is turnedon, engaged, or otherwise activated, motor 322 may rotate shaft 324 andworm 312 in a clockwise or counterclockwise direction around shaft axis326.

In some examples, actuator 320 may be configured to slide linearly alongshaft axis 326. As such, motor 322, shaft 324, and worm 312 may havepositions that are fixed relative to each other, but configured suchthat they slide as a group along shaft axis 326 in response to one ormore forces.

In some examples, actuator 320 may be mounted on a housing 328 such thatactuator 320 and housing 328 are configured to slide together alongshaft axis 326. One or more components of actuator 320 may be glued,screwed, or otherwise affixed to housing 328. Housing 328 in turn may becoupled to plate 360 via a sliding coupling or other low frictioncoupling. As such, housing 328 may be free to slide along shaft axis326. Housing 328 may be any component that allows actuator 320 to slidealong the axis. As such, housing 328 may be any shape or dimension thatcouples to actuator 320 to allow actuator 320 to slide along shaft axis326, and may be a plastic, metal, composite, or other material.

Device 300 may also include a first spring 330, and a second spring 340.First spring 330 may have two ends, with a first end 331 coupled toactuator 320 and a second end 332 fixed. Second spring 340 may have afirst end 341 coupled to actuator 320 and a second end 342 fixed. InFIG. 3A, the first ends of the first spring (331) and second spring(341) are coupled to actuator 320 via the housing 328. However, in someexamples, the first ends of the first spring (331) and first end of thesecond spring (341) may be coupled directly to the motor 322 without thehousing 328. The first ends may be coupled to actuator 320 in otherarrangements as well. Also in FIG. 3A, the second ends of the firstspring (332) and second spring (342) are fixed to plate 360. As such,the fixed nature of the second ends of the first spring and secondspring is such that the second ends of the springs do not move withrespect to plate 360 and/or central point 316 of worm gear 314. Putanother way, the second ends of the first and second springs may befixed relative to the arm in which device 300 is housed.

In some examples, first spring 330 and second spring 340 may beconfigured to resist movement of the actuator along respectivedirections of the shaft axis 326. For instance, as arranged in FIG. 3A,first spring 330 is configured to resist movement of actuator to theright by compressing, and second spring 340 is configured to resistmovement of the actuator to the left by compressing. Each spring mayalso resist movement in the opposition direction by extending. Thecombination of the first and second springs being configured to compresswhen the actuator moves in opposite directions may provide stability. Asarranged in FIG. 3A, movement of actuator 320 linearly to the rightalong shaft axis 326 may cause first spring 330 to compress, whilecausing second spring 340 to extend. This situation is shown in FIG. 3B.When actuator 320 is in a first position as shown in FIG. 3A, the systemcomprising first spring 330 and second spring 340 may be at equilibrium.Equilibrium in this sense means that the forces acting on the system arebalanced, such that an added force is required to compress or extend thesprings in the system. When actuator 320 slides to a second position(due to one or more forces or torques transmitted through the wormdrive), first spring 330 may be compressed while second spring 340 maybe extended. In this state, shown in FIG. 3B, first spring 330 mayimpart a responsive force on actuator 320 in an attempt to return thesystem to the first position.

In some examples, the first spring 330 and/or second spring 340 maysurround portions of actuator 320, such as those shown in FIGS. 3A and3B. More or less of actuator 320 may be surrounded by the springs thanshown in FIG. 3A. Arranging first spring 330 and second spring 340around actuator 320 can result in a more compact design, allowing device300 to be smaller and thus appropriate for more uses and applications.First spring 330 and second spring 340 may have the same or similarspring constants, or may have different spring constants. In someexamples, the spring constants of first spring 330 and second spring 340may be selected such that the actuator is biased toward movement ineither a first direction or a second direction along the shaft axis.This may be particularly useful where there is an inherent bias in aparticular direction, which may be due to the orientation or expectedforces acting on a robotic component that makes use of device 300. Forinstance, where device 300 is used in a robotic leg, an uprightorientation of the device may be such that gravity is expected to biasthe actuator to move in a particular direction. The spring constants ofthe first and second springs may be chosen such that the effect ofgravity is taken into account, and one spring has a higher springconstant than the other.

In some examples, the first end of each spring may be unattached ordisconnected from the actuator. Each spring may be fixed on one end, butunconnected on the other end. In these examples, movement of theactuator in a first direction may cause the first end of the firstspring to contact the actuator, and may cause the first spring tocompress. The first end of the second spring, however, may not contactthe actuator, and may remain unextended. As such, movement of theactuator in a first direction may cause compression (or extension) of afirst spring, while the second spring remains unextended (oruncompressed). Each spring may thus act only to resist movement of theactuator in a single direction, while not preventing or affectingmovement of the actuator in a second, opposite, direction.

Each spring may have one or more characteristics in addition to springconstant that may vary, such as size, firmness, and/or material. Each ofthese characteristics may be altered based on the particular applicationof the robotic gripping device. For example, a spring with a higherspring constant may require more force to compress or extend, which maybe used to determine the appropriate spring to use for a particularapplication.

In some examples, device 300 may also include one or more encoders,sensors, or detectors configured to detect the rotation, position,movement, and/or forces acting on one or more parts of the device. Forexample, device 300 may include linear position encoder 350, which maybe positioned on or coupled to the plate 360. Linear position encoder350 may be configured to detect the position and movement of actuator320 along shaft axis 326, and may provide information about the extentor amount of movement to a control system. Linear position encoder 350may be positioned anywhere on or near device 300 such that it can detectmovement of actuator 320 along shaft axis 326. In some examples, linearposition encoder 350 may detect the movement of actuator 320 withrespect to plate 360 (i.e., a fixed component). In other examples,linear position encoder 350 may detect movement of actuator 320 withrespect to past positions of actuator 320. As such, both relative andabsolute amounts of movement of actuator 320 may be detected. Further,robotic gripping device 500 may include a rotational position encoder354 configured to detect and/or determine the rotational position ofworm gear 314. The rotational position encoder may also be configured todetect absolute and/or relative rotation of worm gear 314.

In some examples, the linear encoder and/or rotational encoder may bemechanical, optical, magnetic, capacitive, glass scale, or another typeof encoder. In addition, the encoders may be absolute or may beincremental. Further, the linear position encoder 350 may be apotentiometer. The potentiometer may be configured to detect a positionof actuator 320 relative to the plate 360, and provide an output thatmay be received by a control system. The potentiometer may also detect arelative movement of actuator 320.

As mentioned earlier, actuator 320 may be configured to slide alongshaft axis 326, and linear position encoder 350 may be configured todetermine the position of actuator 320. In FIG. 3A, device 300 may be ina first state in which linear position encoder 350 may determine thefirst position 351 of actuator 320. FIG. 3B shows device 300 in a secondstate in which the actuator has moved to the right along shaft axis 326.In FIG. 3B, linear position encoder 350 may determine the secondposition 352 of actuator 320. The difference between first position 351and second position 352 may be used to determine the force acting onactuator 320 causing it to slide.

In some examples, different spring types and orientations may be used.For instance, FIGS. 4A and 4B illustrate a first state and a secondstate of an example embodiment of a device 400. Device 400 may besimilar or identical to device 300 in one or more respects. Forinstance, device 400 may include the same first spring 330 as device300. But device 400 may include a different second spring 440 thandevice 300. As shown in FIG. 4A, second spring 440 may be positioned onshaft 324 of device 400. The first end 441 of second spring 440 may becoupled to shaft 324. And the second end 442 of second spring 440 may befixed, such as to plate 362. Plate 362 may be fixed relative to plate360 and/or central point 316 of worm gear 314. In FIG. 4A, device 400 isshown in a first state in which linear position encoder 350 maydetermine the first position 451 of actuator 320.

FIG. 4B illustrates the same device 400 in a second state, in whichactuator 320 has moved to the right along shaft axis 326. FIG. 4B showsthat first spring 330 has been compressed, while second spring 440 hasbeen extended. Second spring 440 may be similar to second spring 340, inthat each may be configured to resist movement of the actuator in aparticular direction along shaft axis 326. In FIG. 4B, device 400 isshown in the second state in which linear position encoder 350 maydetermine the second position 452 of actuator 320. The differencebetween first position 451 and second position 452 may be used todetermine a force acting on actuator 320.

FIGS. 5A and 5B illustrate a first state and a second state of a device500 having a third orientation of first and second springs. Device 500may be similar or identical in some respects to devices 300 and 400described above. But in FIG. 5A, first spring 330 and second spring 340(or 440) have been replaced by first springs 530A and 530B and secondsprings 540A and 540B. Each of the springs 530A-B and 540A-B may beextension springs, and may be configured to resist movement of actuator320 along the shaft axis 326. The first ends (531A-B and 541A-B) may becoupled to actuator 320, such as via housing 328, while the second ends(532A-B and 542A-B) may be fixed, such as to plate 360. When actuator320 slides along shaft axis 326 in response to a force, first springs530A-B may compress while second springs 540A-B extend. This is shown inFIG. 5B.

In FIG. 5A, device 500 is shown in a first state in which linearposition encoder 350 may determine the first position 551 of actuator320. In FIG. 5B, device 500 is shown in the second state in which linearposition encoder 350 may determine the second position 552 of actuator320. The difference between first position 551 and second position 552may be used to determine a force acting on actuator 320.

Devices 300, 400, and 500 may also each include a control system such ascontrol system 118 in FIG. 1, which may control one or more aspects ofeach device. The control system may include one or more processors, andmay also include a non-transitory computer-readable memory, which mayhave stored thereon instructions executable by the one or moreprocessors to carry out one or more actions described in thisdisclosure.

In some examples, the control system may receive, from linear positionencoder 350, the position of actuator 320 along shaft axis 326. Thecontrol system may receive a continuous feed of information from linearposition encoder 350, or it may receive information at discrete timeintervals. The received position may also be an absolute position, or itmay be a relative position. For instance, the linear position encodermay provide a change in position from a first point in time to a secondpoint in time, between which actuator 320 has moved along shaft axis326. The control system may then determine the amount of forcetransmitted through the worm drive based on the position of actuator320. The determined amount of force may be the amount of force acting onthe shaft, from the worm gear 314, along the shaft axis.

In some examples, the control system may also be configured to controldevice 300, 400, and/or 500 based on the determined force. Thedetermined force may indicate that an object in the environment isinteracting with some portion of a robotic device of which device 300,400, or 500 is a part. There may be a threshold force, above which thecontrol system may want to protect one or more components of the device.This may occur if a robotic device falls over, runs into an object, oris impacted by an object in the environment. In these instances, it maybe beneficial for the control system to act to prevent damage. Forinstance, when the determined force is greater than a threshold force,the control system may control the actuator by changing the speed ofrotation of the shaft. This may include turning the motor off, which maycause the shaft to cease rotation and may prevent damage. In otherexamples, when the determined force is greater than a threshold force,the control system may control the motor to cause the shaft to beginrotation or change the direction of rotation. This may cause the arm orother component to move out of the way or to lessen the force impartedon the device. Other examples are possible as well.

IV. EXAMPLE OPERATIONS

FIG. 6 illustrates a flowchart of an example method 600. This examplemethod may apply to devices 300, 400, and/or 500. Method 600 may alsoapply to other devices having different arrangements and/or differentcomponents than those described herein. Further, method 600 may becarried out by one or more control systems of the robotic system 100and/or robotic arm 200, as well as a control system of a robotic deviceincluding device 300, 400, and/or 500.

At block 602, method 600 may include determining a first linear positionof an actuator that drives a worm drive. In some examples, this may becarried out on a device such as device 300, 400, and/or 500, whichincludes a worm drive, actuator, first spring, second spring, and linearposition encoder. Determining the first linear position may include thelinear position encoder detecting the first position, and transmittingthe information to a control system. In some examples, determining thefirst linear position may include a control system receiving data fromthe linear position encoder, and then determining an absolute orrelative position based on the received data.

At block 604, method 600 may include determining a second linearposition of the actuator, wherein the second linear position isdifferent than the first linear position. Determining the second linearposition may be carried out in a manner similar or identical to block602 in which the first linear position is determined. After the firstposition is determined, a force may act on the actuator causing theactuator to slide along the shaft axis to a second position. In thesecond position, only one of the first and second spring may becompressed when in the second position. For instance, the first springmay be compressed while the second spring is extended, or vice versa.

In some examples, the force may come from an external source, such as anobject in the environment. The object may impart a force on the wormgear, causing the worm gear to rotate and slide the actuator along theshaft axis (via a coupling with the worm of the actuator). In otherexamples, the force may come from the motor attempting to drive the wormdrive. The motor may actuate and thereby cause the shaft and worm torotate. In the event that the worm gear is prevented from rotatingfreely, the worm may be driven along the shaft axis by rotating againstthe stationary (or semi-stationary) worm gear. In this manner, the motormay cause the actuator to slide along the shaft axis to a secondposition.

At block 606, method 600 may include determining a force acting on theactuator along the shaft axis based on a difference between the firstlinear position and the second linear position. In some examples, theforce may be determined based on the difference in position as well asthe characteristics of the first and second spring. For instance, theforce causing the actuator to slide may be directly proportional to thedifference in position multiplied by the spring constants of the firstand second spring. Other relationships between the difference inposition and force are possible as well.

At block 608, method 600 may include controlling the actuator based onthe determined force. The determined force may be compared to athreshold force to determine what action to take. The threshold forcemay correspond to a force required to damage one or more components ofthe device, and may be set sufficiently below the amount required fordamage. Other threshold amounts may be used as well.

In some examples, controlling the actuator may include shutting off themotor, turning it on, and/or changing the speed of rotation or directionof rotation of the shaft relative to the motor. Where the force on theactuator is above a threshold, the actuator may be controlled tocounteract the force by rotating such that the actuator moves in theopposite direction to lessen the force. Put another way, if the secondposition of the actuator is beyond a set distance from the firstposition, the actuator may be controlled such that the shaft and wormrotate to cause the actuator to slide in the opposite direction tolessen the distance.

As a real world example, a device such as device 300 may be locatedwithin an arm of a robotic device to drive the elbow joint. When theelbow is partially bent, an object may be placed on the forearm. If theobject is heavy, it may cause the elbow joint to feel a large forceattempting to open it. This force may be transmitted through the elbowjoint to the worm gear, resulting in a force causing the actuator toslide. Where the object is heavy enough to cause a force greater than aset threshold on the elbow joint, the actuator may be controlled suchthat it force the elbow to open (as opposed to remaining stationary).While the object may be dropped by the robotic device, the elbow jointand other components of the robotic device may avoid damage.

V. EXAMPLE VARIATIONS

Some examples described above may include a rotational position encoder354. The rotational position encoder may determine a relative orabsolute rotational position of the worm gear 314. This information maybe used by a control system for one or more purposes. For instance, therotational position of worm gear 314 may correspond to the position ofone or more limbs, fingers, arms, or other components of a roboticdevice driven by worm drive 310. The positional information may be usedto avoid damage, and/or to provide the control system with a fullerpicture of the position and orientation of the components of the roboticdevice it controls.

As described above, the force acting on the actuator that causes it toslide or move from a first position to a second position may come froman external source or from the actuator itself. In some examples, thesteps of method 600 and/or the forces determined to be acting on theactuator may be determined while the motor is turned off (i.e., notrotating the shaft). But in other examples, the force may be determinedwhile the motor is running and rotating or attempting to rotate theshaft. In these examples, the first linear position and/or second linearposition of the actuator may be determined while the shaft is rotating.So too the force acting on the actuator may be determined while theshaft is rotating. As a result, controlling the actuator in response tothe determined force may include changing the speed or direction ofrotation of the shaft.

In some examples, the first spring and second spring may be a singlespring configured to resist movement in two directions. Whereas someembodiments described above may include the first spring and/or secondspring resisting movement in one direction, a single spring may replaceor be used instead, and may be configured to operate or carry out thefunctions of both the first and second spring. For instance, the singlespring may be configured to compress in one direction and extend inanother direction, in line with the shaft axis, such that movement ofthe actuator along the shaft axis in either direction is resisted by thesingle spring.

VII. CONCLUSION

It should be understood that arrangements described herein are forpurposes of example only. As such, those skilled in the art willappreciate that other arrangements and other elements (e.g. machines,interfaces, operations, orders, and groupings of operations, etc.) canbe used instead, and some elements may be omitted altogether accordingto the desired results. Further, many of the elements that are describedare functional entities that may be implemented as discrete ordistributed components or in conjunction with other components, in anysuitable combination and location, or other structural elementsdescribed as independent structures may be combined.

While various aspects and implementations have been disclosed herein,other aspects and implementations will be apparent to those skilled inthe art. The various aspects and implementations disclosed herein arefor purposes of illustration and are not intended to be limiting, withthe true scope being indicated by the following claims, along with thefull scope of equivalents to which such claims are entitled. It is alsoto be understood that the terminology used herein is for the purpose ofdescribing particular implementations only, and is not intended to belimiting.

1. A system, comprising: a worm drive comprising a worm and a worm gear;an actuator comprising a motor, a shaft, and the worm, wherein the shaftis configured to rotate about a shaft axis and the actuator isconfigured to move linearly along a shaft axis; at least one spring isconfigured to resist movement of the actuator along the shaft axis; alinear position encoder configured to: determine a first linear positionof the actuator that drives the worm drive; determine a second linearposition of the actuator, wherein the second linear position isdifferent than the first linear position; and a control systemconfigured to: determine a force acting on the actuator along the shaftaxis based on a difference between the first linear position and thesecond linear position; and control the actuator based on the determinedforce.
 2. The system of claim 1, wherein the at least one spring isconfigured to resist movement of the actuator along the shaft axis as aresult of a force transmitted through the worm drive in a firstdirection by compressing, and in a second direction by extending.
 3. Thesystem of claim 1, wherein the at least one spring is a first spring anda second spring, wherein the first spring has a first end and a secondend, wherein the second end of the first spring is fixed, and whereinthe first spring is configured to resist movement of the actuator alongthe shaft axis in a first direction as a result of a first forcetransmitted through the worm drive, and wherein the second spring has afirst end and a second end, wherein the second end of the second springis fixed, and wherein the second spring is configured to resist movementof the actuator along the shaft axis in a second direction as a resultof a second force transmitted through the worm drive, wherein the seconddirection is opposite the first direction.
 4. The system of claim 3,wherein the first end of the first spring and the first end of thesecond spring are coupled to the actuator, the second end of the firstspring and the second end of the second spring are anchored in fixedpositions relative to the worm gear, and wherein the first spring andthe second spring surround respective portions of the motor.
 5. Thesystem of claim 3, wherein the first end of the first spring is coupledto the motor, the first end of the second spring is coupled to theshaft, and the second end of the first spring and the second end of thesecond spring are anchored in fixed positions relative to the worm gear.6. The system of claim 3, wherein the first spring and the second springare extension springs, the first end of the first spring and the firstend of the second spring are coupled to the motor, and the second end ofthe first spring and the second end of the second spring are anchored infixed positions relative to the worm gear.
 7. The system of claim 3,wherein the first end of the first spring and the first end of thesecond spring are uncoupled from the actuator, and the second end of thefirst spring and the second end of the second spring are anchored infixed positions relative to the worm gear.
 8. The system of claim 1,wherein the linear position encoder is configured to determine thesecond linear position of the actuator while the shaft is rotating. 9.The system of claim 1, wherein the control system is configured to:determine that the force acting on the actuator is above a thresholdforce; and responsive to the determination that the force acting on theactuator is above the threshold force, change a speed of rotation of theshaft.
 10. The system of claim 1, wherein the control system isconfigured to: determine that the force acting on the actuator is abovea threshold force; and responsive to the determination that the forceacting on the worm drive is above the threshold force, initiatingrotation of the shaft relative to the motor.
 11. A system, comprising: aworm drive comprising a worm and a worm gear; an actuator comprising amotor, a shaft, and the worm, wherein the shaft is configured to rotateabout a shaft axis and the actuator is configured to move linearly alonga shaft axis; a first spring having a first end and a second end,wherein the second end of the first spring is fixed, and wherein thefirst spring is configured to resist movement of the actuator along theshaft axis in a first direction as a result of a first force transmittedthrough the worm drive, and a second spring has a first end and a secondend, wherein the second end of the second spring is fixed, and whereinthe second spring is configured to resist movement of the actuator alongthe shaft axis in a second direction as a result of a second forcetransmitted through the worm drive, wherein the second direction isopposite the first direction a linear position encoder configured to:determine a first linear position of the actuator that drives the wormdrive; determine a second linear position of the actuator, wherein thesecond linear position is different than the first linear position; anda control system configured to: determine a force acting on the actuatoralong the shaft axis based on a difference between the first linearposition and the second linear position; and control the actuator basedon the determined force.
 12. The system of claim 11, wherein the firstend of the first spring and the first end of the second spring arecoupled to the actuator, the second end of the first spring and thesecond end of the second spring are anchored in fixed positions relativeto the worm gear, and wherein the first spring and the second springsurround respective portions of the motor.
 13. The system of claim 11,wherein the first end of the first spring is coupled to the motor, thefirst end of the second spring is coupled to the shaft, and the secondend of the first spring and the second end of the second spring areanchored in fixed positions relative to the worm gear.
 14. The system ofclaim 11, wherein the first spring and the second spring are extensionsprings, the first end of the first spring and the first end of thesecond spring are coupled to the motor, and the second end of the firstspring and the second end of the second spring are anchored in fixedpositions relative to the worm gear.
 15. The system of claim 11, whereinthe first end of the first spring and the first end of the second springare uncoupled from the actuator, and the second end of the first springand the second end of the second spring are anchored in fixed positionsrelative to the worm gear.
 16. The system of claim 11, wherein the firstspring and the second spring comprise a single spring, and wherein thesingle spring is configured to resist movement of the actuator along theshaft axis as a result of a force transmitted through the worm drive ina first direction by compressing, and in a second direction byextending.
 17. The system of claim 11, further comprising a roboticjoint having one degree of freedom, wherein the worm drive is configuredto drive the robotic joint.
 18. The system of claim 11, wherein a firstspring constant corresponding to the first spring is equal to a secondspring constant corresponding to the second spring.
 19. A devicecomprising: a worm drive comprising a worm and a worm gear; an actuatorcomprising a motor, a shaft, and the worm, wherein the shaft isconfigured to rotate about a shaft axis and the actuator is configuredto move linearly along a shaft axis; a first spring having a first endand a second end, wherein the second end of the first spring is fixed,and wherein the first spring is configured to resist movement of theactuator along the shaft axis in a first direction as a result of afirst force transmitted through the worm drive; a second spring has afirst end and a second end, wherein the second end of the second springis fixed, and wherein the second spring is configured to resist movementof the actuator along the shaft axis in a second direction as a resultof a second force transmitted through the worm drive, wherein the seconddirection is opposite the first direction; and a linear position encoderconfigured to: determine a first linear position of the actuator thatdrives the worm drive; determine a second linear position of theactuator, wherein the second linear position is different than the firstlinear position.
 20. The device of claim 19, further comprising a sensorthat determines a force acting on the actuator along the shaft axisbased on a difference between the first linear position and the secondlinear position.